package l1j.server.server.serverpackets;

import java.io.IOException;

import l1j.server.server.model.Instance.L1ItemInstance;
import l1j.server.server.model.Instance.L1PcInstance;

public class S_RetrieveList extends ServerBasePacket {
	public S_RetrieveList(final int objid, final L1PcInstance pc) {

		if (pc.getInventory().getSize() < 180) {

			final int size = pc.getDwarfInventory().getSize();

			if (size > 0) {

				this.writeC(S_OPCODE_SHOWRETRIEVELIST);
				this.writeD(objid);
				this.writeH(size);
				this.writeC(3);// 個人倉庫

				for (final Object itemObject : pc.getDwarfInventory()
						.getItems()) {
					final L1ItemInstance item = (L1ItemInstance) itemObject;
					this.writeD(item.getId());
					this.writeC(0);
					this.writeH(item.get_gfxid());
					this.writeC(item.getBless());
					this.writeD((int) item.getCount());
					this.writeC(item.isIdentified() ? 1 : 0);
					this.writeS(item.getViewName());
				}
				// TODO 修正3.53C個人倉庫領取金額異常
				this.writeD(30);// 金幣30
				this.writeD(0x00000000);
				this.writeH(0x00);
				// TODO 修正3.53C個人倉庫領取金額異常
			} else {
				pc.sendPackets(new S_ServerMessage(1625));// TODO
															// 修正個人倉庫領出封包by99團隊
			}

			// クライアントに適当なメッセージ見つからなかったので非表示
			/*
			 * else { l1pcinstance.sendPackets(new
			 * S_SystemMessage("何もお預かりしていません。")); }
			 */
		} else {
			pc.sendPackets(new S_ServerMessage(263)); // \f1一人のキャラクターが持って歩けるアイテムは最大180個までです。
		}
	}

	@Override
	public byte[] getContent() throws IOException {
		return this.getBytes();
	}

}
